/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Christopher
 */
public abstract class AbstractPila<E> implements InterfacePila<E> {
    
    private int apun;
    
    /**
    * pre: verificar si el apuntador de la lista es equivalente a cero
    * post: si es igual a cero la lista esta vacia y devuelve verdadero 
    * como resultado.
    * @param none
    * @return boolean
    * 
    */
    @Override
    public boolean empty(){ 
        if(apun == 0){
            return true;
        }
        else{
            return false;
        }
    }
    
    /**
    * pre: lista con elementos
    * post: si existe un elemento devuelve el valor del ultimo elemento agregado
    * a la lista sin eliminar el elemento de la lista.
    * @param none
    * @return E
    *  
    */
    @Override
    public abstract E peek();
    
    /**
    * pre: lista con elementos
    * post: si existe un elemento devuelve el valor del último elemento agregado
    * eliminando el mismo elemento de la lista. 
    * @param none
    * @return E
    * 
    */
    @Override
    public abstract E pop();
    
    /**
    * pre: lista simplemente encadenada con o sin elementos
    * post: agrega un elemento a la lista en la posicion del head. 
    * @param item
    * @return void
    * 
    */
    @Override
    public abstract void push(E item);
}
